package com.fcscs.cservice.gwt.client;

import java.util.List;

import com.fcscs.cservice.domain.PropertyConfigRestaurant;
import com.fcscs.cservice.domain.Restaurant;
import com.fcscs.cservice.domain.RestaurantConfig;
import com.fcscs.cservice.domain.model.RestaurantConfigModel;
import com.fcscs.cservice.domain.model.RestaurantConfiguration;
import com.fcscs.cservice.domain.model.RestaurantView;
import com.google.gwt.user.client.rpc.AsyncCallback;

public interface RestaurantServiceAsync {

	void delete(Restaurant loc, AsyncCallback<Boolean> callback);

	<E extends Restaurant> void get(E cls, long id, AsyncCallback<Restaurant> callback);

	void get(long id, AsyncCallback<Restaurant> callback);

	void getRestaurants(long orgId, Long propId,AsyncCallback<List<Restaurant>> callback);

	void getRestaurantViews(long orgId, Long propId,AsyncCallback<List<RestaurantView>> callback);

	void permDelete(Restaurant loc, AsyncCallback<Void> callback);

	void save(Restaurant loc, AsyncCallback<Restaurant> callback);

	void getRestaurantConfigModel(long orgId,Long propId,AsyncCallback<RestaurantConfigModel> callback);
	
	void saveRestaurantConfigModel(RestaurantConfigModel model,AsyncCallback<RestaurantConfigModel> callback);

	void getPropertyConfigRestaurant(Long propetyId,
			AsyncCallback<PropertyConfigRestaurant> callback);
	
	void savePropertyConfigRestaurant(PropertyConfigRestaurant propConfigRest,
			AsyncCallback<PropertyConfigRestaurant> callback);
	
	void getRestaurantConfig( Long propId, long restaId,
			AsyncCallback<List<RestaurantConfig>> callback);
	
	void saveRestaurantConfig(RestaurantConfiguration resc,
			AsyncCallback<RestaurantConfiguration> callback);
}
